package com.dubbo.myRule;

import com.dubbo.snail.lb.MyCustomLoadBalancer;
import com.netflix.loadbalancer.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description TODO
 * @Author xueguoping
 * @Date 2021/5/10 13:46
 */

@Configuration
public class MySelfRule {

	@Bean
	public IRule rule(){

		//轮询 负载均衡算法：rest接口的第几次请求数%服务器集群总数量 = 实际调用服务位置下标，每次服务重启后rest接口计数从1开始。
		//return new RandomRule();// 随机
		//return new RetryRule();//重试
		return new RoundRobinRule();//轮询
		//return new WeightedResponseTimeRule();//响应时间越长 权重越小
		//return new BestAvailableRule();//选择一个并发量最小的server返回
		//return new AvailabilityFilteringRule();//过滤掉连接失败的服务节点，并且过滤掉高并发的服务节点，然后从健康的服务节点中，使用轮询策略选出一个节点返回。
		//return new ZoneAvoidanceRule();//默认规则; 复合判断server所在区域的性能和server的可用性，来选择server返回。
	}
}
